﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using TaxiCaosSOAPService.Dominio;
using TaxiCaosSOAPService.Persistencia;
using TaxiCaosSOAPService.Exceptions;

namespace TaxiCaosSOAPService
{
    public class Seguridad : ISeguridad
    {
        private UsuarioDAO usuarioDAO = null;
        private UsuarioDAO UsuarioDAO
        {
            get
            {
                if (usuarioDAO == null)
                    usuarioDAO = new UsuarioDAO();
                return usuarioDAO;
            }
        }
 
        public Usuario autenticarUsuario(string uLogin, string password)
        {
            Usuario usuario = UsuarioDAO.ObtenerUsuarioPorULoginAndPassword(uLogin, password);

            if (usuario == null)
            {
                SeguridadException ex = new SeguridadException { Message = "El usuario y/o contraseña son incorrectos." };
                throw new FaultException<SeguridadException>(ex, ex.Message);
            }

            return usuario;
        }

        public Usuario ObtenerUsuarioPorULogin(string uLogin)
        {
            return UsuarioDAO.ObtenerUsuarioPorULogin(uLogin);
        }

        public Usuario CrearUsuario(Usuario usuarioACrear)
        {
            return UsuarioDAO.Crear(usuarioACrear);
        }



    }
}
